/**
 * Lap.java
 * Version: 1.0
 * Created in 06/08/2013
 * Created by: Gerson Groth
 * 
 * Copyright
 */
package activities.base.tcx;

import java.util.Date;

/**
 * The Class Lap.
 *
 * @author Gerson Groth
 */
public class Lap {
	
	/** The start time. */
	private Date startTime;
	
	/** The total time seconds. */
	private double totalTimeSeconds;
	
	/** The distance meters. */
	private double distanceMeters;
	
	/** The maximum speed. */
	private double maximumSpeed;
	
	/** The calories. */
	private int calories;
	
	/** The average heart rate bpm. */
	private int averageHeartRateBpm;
	
	/** The maximum heart rate bpm. */
	private int maximumHeartRateBpm;
	
	/** The intensity active. */
	private boolean intensityActive;
	
	/** The trigger method. */
	private TriggerMethod triggerMethod;
	
	/** The track. */
	private Track track;
	
	/** The extensions. */
	private Extensions extensions;

	/**
	 * Instantiates a new lap.
	 *
	 * @param startTime the start time
	 * @param totalTimeSeconds the total time seconds
	 * @param distanceMeters the distance meters
	 * @param maximumSpeed the maximum speed
	 * @param calories the calories
	 * @param averageHeartRateBpm the average heart rate bpm
	 * @param maximumHeartRateBpm the maximum heart rate bpm
	 * @param intensityActive the intensity active
	 * @param triggerMethod the trigger method
	 * @param track the track
	 * @param extensions the extensions
	 */
	public Lap(Date startTime, double totalTimeSeconds, double distanceMeters,
			double maximumSpeed, int calories, int averageHeartRateBpm,
			int maximumHeartRateBpm, boolean intensityActive,
			TriggerMethod triggerMethod, Track track, Extensions extensions) {
		super();
		this.startTime = startTime;
		this.totalTimeSeconds = totalTimeSeconds;
		this.distanceMeters = distanceMeters;
		this.maximumSpeed = maximumSpeed;
		this.calories = calories;
		this.averageHeartRateBpm = averageHeartRateBpm;
		this.maximumHeartRateBpm = maximumHeartRateBpm;
		this.intensityActive = intensityActive;
		this.triggerMethod = triggerMethod;
		this.track = track;
		this.extensions = extensions;
	}

	/**
	 * Gets the start time.
	 *
	 * @return the start time
	 */
	public Date getStartTime() {
		return startTime;
	}

	/**
	 * Sets the start time.
	 *
	 * @param startTime the new start time
	 */
	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	/**
	 * Gets the total time seconds.
	 *
	 * @return the total time seconds
	 */
	public double getTotalTimeSeconds() {
		return totalTimeSeconds;
	}

	/**
	 * Sets the total time seconds.
	 *
	 * @param totalTimeSeconds the new total time seconds
	 */
	public void setTotalTimeSeconds(double totalTimeSeconds) {
		this.totalTimeSeconds = totalTimeSeconds;
	}

	/**
	 * Gets the distance meters.
	 *
	 * @return the distance meters
	 */
	public double getDistanceMeters() {
		return distanceMeters;
	}

	/**
	 * Sets the distance meters.
	 *
	 * @param distanceMeters the new distance meters
	 */
	public void setDistanceMeters(double distanceMeters) {
		this.distanceMeters = distanceMeters;
	}

	/**
	 * Gets the maximum speed.
	 *
	 * @return the maximum speed
	 */
	public double getMaximumSpeed() {
		return maximumSpeed;
	}

	/**
	 * Sets the maximum speed.
	 *
	 * @param maximumSpeed the new maximum speed
	 */
	public void setMaximumSpeed(double maximumSpeed) {
		this.maximumSpeed = maximumSpeed;
	}

	/**
	 * Gets the calories.
	 *
	 * @return the calories
	 */
	public int getCalories() {
		return calories;
	}

	/**
	 * Sets the calories.
	 *
	 * @param calories the new calories
	 */
	public void setCalories(int calories) {
		this.calories = calories;
	}

	/**
	 * Gets the average heart rate bpm.
	 *
	 * @return the average heart rate bpm
	 */
	public int getAverageHeartRateBpm() {
		return averageHeartRateBpm;
	}

	/**
	 * Sets the average heart rate bpm.
	 *
	 * @param averageHeartRateBpm the new average heart rate bpm
	 */
	public void setAverageHeartRateBpm(int averageHeartRateBpm) {
		this.averageHeartRateBpm = averageHeartRateBpm;
	}

	/**
	 * Gets the maximum heart rate bpm.
	 *
	 * @return the maximum heart rate bpm
	 */
	public int getMaximumHeartRateBpm() {
		return maximumHeartRateBpm;
	}

	/**
	 * Sets the maximum heart rate bpm.
	 *
	 * @param maximumHeartRateBpm the new maximum heart rate bpm
	 */
	public void setMaximumHeartRateBpm(int maximumHeartRateBpm) {
		this.maximumHeartRateBpm = maximumHeartRateBpm;
	}

	/**
	 * Checks if is intensity active.
	 *
	 * @return true, if is intensity active
	 */
	public boolean isIntensityActive() {
		return intensityActive;
	}

	/**
	 * Sets the intensity active.
	 *
	 * @param intensityActive the new intensity active
	 */
	public void setIntensityActive(boolean intensityActive) {
		this.intensityActive = intensityActive;
	}

	/**
	 * Gets the trigger method.
	 *
	 * @return the trigger method
	 */
	public TriggerMethod getTriggerMethod() {
		return triggerMethod;
	}

	/**
	 * Sets the trigger method.
	 *
	 * @param triggerMethod the new trigger method
	 */
	public void setTriggerMethod(TriggerMethod triggerMethod) {
		this.triggerMethod = triggerMethod;
	}

	/**
	 * Gets the track.
	 *
	 * @return the track
	 */
	public Track getTrack() {
		return track;
	}

	/**
	 * Sets the track.
	 *
	 * @param track the new track
	 */
	public void setTrack(Track track) {
		this.track = track;
	}

	/**
	 * Gets the extensions.
	 *
	 * @return the extensions
	 */
	public Extensions getExtensions() {
		return extensions;
	}

	/**
	 * Sets the extensions.
	 *
	 * @param extensions the new extensions
	 */
	public void setExtensions(Extensions extensions) {
		this.extensions = extensions;
	}

}
